<?
class Arquivo extends Main
{
	function Arquivo()
	{
		$this->Main();
		if(!$this->conexao)
		{
			exit('Sem conexao '.__FILE__.__LINE__);
		}
	}
	
	function obtem($where="", $ordem="nome_arquivo", $limit="", $offset=0, $cod_site="")
	{
		if($cod_site == "")
		{
			$cod_site = AW_COD_SITE;
		}
		
		$sql = "SELECT * FROM ". AW_BD_PREFIX ."arquivo WHERE cod_site = '$cod_site'";
		if(is_array($where))
		{
			$sql_where = "";
			foreach ($where as $secao)
			{
				$sql_where .= "cod_arquivo = '". $secao['cod_arquivo'] ."' OR ";
			}
			$sql_where = substr($sql_where,0,-4);
			$sql .= " AND ( $sql_where )";
		}
		elseif($where != "")
		{
			$sql .= " AND ( $where ) ";
		}
		
		$sql .= " ORDER BY $ordem ";
		
		if($limit != "")
		{
			$sql .= " LIMIT $offset,$limit ";
		}

		// Trata retorno
		$resultq = $this->conexao->Execute($sql);
		unset($sql);
		if(!$resultq)
		{
			if(AW_DEBUG)
			{
				echo("Erro ao obter arquivo: ".__FILE__." : ".__LINE__."<br />".$this->conexao->ErrorMsg());
			}
			return false;
		}
		else
		{
			return $resultq->GetRows();
		}
	}
	
	function atualiza($dados)
	{
		if(!is_array($dados))
		{
			if(AW_DEBUG)
			{
				echo("Argumento deve ser um array: ".__FILE__." : ".__LINE__);
			}
			return false;
		}
		
		// Pega
		$sql = "SELECT * FROM ". AW_BD_PREFIX ."arquivo WHERE cod_arquivo = '".$dados['cod_arquivo']."'";
		$rs = $this->conexao->Execute($sql);
		$rs->GetRows();
		unset($sql);

		// Adodb retorna o sql para update
		$sql = $this->conexao->GetUpdateSQL($rs,$dados,true,false,true);
		$resultq = $this->conexao->Execute($sql);
		unset($sql);
		
		// Trata retorno
		if(!$resultq)
		{
			if(AW_DEBUG)
			{
				echo("Erro ao atualizar arquivo: ".__FILE__." : ".__LINE__."<br />".$this->conexao->ErrorMsg());
			}
			return false;
		}
		else
		{
			return true;
		}
	}
	
	function insere()
	{

		// Pega a materia vazia
		$sql = "SELECT * FROM ". AW_BD_PREFIX ."arquivo WHERE cod_arquivo = '-1'";
		$rs = $this->conexao->Execute($sql);
		$rs->GetRows();
		unset($sql);

		$dados = array('cod_site' => AW_COD_SITE);

		// Adodb retorna o sql para insert
		$sql = $this->conexao->GetInsertSQL($rs,$dados);
		$resultq = $this->conexao->Execute($sql);
		unset($sql);

		return $this->conexao->Insert_ID();
	}
	
	function redimensiona($origem,$destino,$maxaltura=200,$maxlargura=350,$qualidade=70)
	{
		if(!strstr($origem,"http") && !file_exists($origem))
		{
			echo("Arquivo de origem da arquivo inexistente");
			return false;
		}
		
		$ext = strtolower(end(explode('.', $origem)));
		if($ext == "jpg" || $ext == "jpeg")
		{
			$img_origem = @imagecreatefromjpeg($origem);
		}
		elseif ($ext == "gif")
		{
			$img_origem = @imagecreatefromgif($origem);
		}
		elseif ($ext == "png")
		{
			$img_origem = @imagecreatefrompng($origem);
		}
		
		if(!$img_origem)
		{
			echo("Erro ao carregar a arquivo, talvez formato nao suportado");
			return false;
		}
		
		$alt_origem = imagesy($img_origem);
		$lar_origem = imagesx($img_origem);
		$escala = min($maxaltura/$alt_origem, $maxlargura/$lar_origem);
		
		if($escala < 1)
		{
			$alt_destino = floor($escala*$alt_origem);
			$lar_destino = floor($escala*$lar_origem);
			
			// Cria arquivo de destino
			$img_destino = imagecreatetruecolor($lar_destino,$alt_destino);
			
			// Redimensiona
			imagecopyresampled($img_destino, $img_origem, 0, 0, 0, 0, $lar_destino, $alt_destino, $lar_origem, $alt_origem);
			imagedestroy($img_origem);
		}
		else
		{
			$img_destino = $img_origem;
		}

		$ext = strtolower(end(explode('.', $destino)));
		if($ext == "jpg" || $ext == "jpeg")
		{
			imagejpeg($img_destino,$destino,$qualidade);
			return true;
		}
		elseif ($ext == "gif")
		{
			imagepng($img_destino,$destino);
			return true;
		}
		elseif ($ext == "png")
		{
			imagepng($img_destino,$destino);
			return true;
		}
		else 
		{
			echo("Formato de destino nao suportado");
			return false;
		}
	}
	
	function converte_png($origem,$tipo,$destino="")
	{
		if(!file_exists($origem))
		{
			echo("Arquvo de origem da arquivo inexistente");
			return false;
		}
		
		$ext = strtolower(end(explode('.', $origem)));
		if (stristr($tipo,"jpeg") || stristr($tipo,"jpg"))
		{
			$img_origem = @imagecreatefromjpeg($origem);
		}
		elseif ($tipo == "image/gif")
		{
			$img_origem = @imagecreatefromgif($origem);
		}
		elseif ($tipo == "image/png")
		{
			$img_origem = @imagecreatefrompng($origem);
		}
		else
		{
			echo("Erro ao carregar a arquivo, talvez formato nao suportado: ".$tipo);
			return false;
		}
		
		$alt_origem = imagesy($img_origem);
		$lar_origem = imagesx($img_origem);
		
		if($destino == "")
		{
			$destino = $origem;
		}
		
		imagepng($img_origem,$destino);
		return true;
	}
}
?>